// var arr = [1, [
// 		[2, 3], 4
// 	],
// 	[5, 6]
// ];

// var flat = function*(a) {
// 	var length = a.length;
// 	for (var i = 0; i < length; i++) {
// 		var item = a[i];
// 		if (typeof item !== 'number') {
// 			yield* flat(item);
// 		} else {
// 			yield item;
// 		}
// 	}
// };

// for (var f of flat(arr)) {
// 	console.log(f);
// }
// // 1, 2, 3, 4, 5, 6

function* gen() {
	yield*[1, 2];
	yield*'34';
	yield* Array.from(arguments);
}

var iterator = gen(5, 6);
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
